package com.lainiao.cookie;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;

/**
 *  Cookie 包含中文
 */
@WebServlet("/ccc")
public class cookie04_CookieChineseCode extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//        // cookie 存中文
//        String name = "name";      // 这一项  不能  是中文
//        String value = "梁非凡";    // 这一项  可以  是中文
//        Cookie cookie = new Cookie(name,value);
//        response.addCookie(cookie);

        // cookie 存中文（使用编码）（不常用）
        String name = "姓名";      // 这一项  不能  是中文
        String value = "梁非凡";    // 这一项  可以  是中文
        name = URLEncoder.encode(name);
        value = URLEncoder.encode(value);
        Cookie cookie = new Cookie(name,value);
        response.addCookie(cookie);

        // 获取cookie时 有中文
        Cookie[] cookies = request.getCookies();
        if(cookies!=null && cookies.length>0){
            for (Cookie getCookie:cookies) {
                // 在接受中文cookie时，如果不使用URLDecoder.decode()，那拿到的cookie会乱码
                String getName = URLDecoder.decode(getCookie.getName());
                String getValue = URLDecoder.decode(getCookie.getValue());
                System.out.println("Name:" + getName + ",Value:" + getValue);
            }
        }

    }
}
